// 运行这个指令打包并设置版本号
// npm run buildVer --setv=0.1.1

// 获取npm的环境变量
const version = process.env.npm_config_setv

// 导入fs插件，项目中带有，如果不存在自行下载
const fs = require('fs')

// 导入 path 模块，项目中自带
const path = require('path')

// 获取 package.json 文件路径
const url = path.join(process.cwd(), './package.json')

// 读取 package.json 文件
const package = fs.readFileSync(url, 'utf-8')

// 获取项目中的子进程
const { exec } = require('child_process')

// 捕获，防止报错
try {

  // 将 package.json 文件转换成对象，默认是 json 格式
  const json = JSON.parse(package)

  // 将命令执行的版本号覆盖之前的版本号
  json.version = version

  // 将 package.json 重新写回 package.json 文件，
  fs.writeFileSync(url, JSON.stringify(json, null, 2))

  // 执行 子进程命令，开始打包
  const build = exec('npm run build')

  // 将打包信息，打印到控制台
  build.stdout.on('data', (chunk) => {
    console.log(chunk);
  })
} catch(e) {
  // 打印错误信息
  console.log("__文件错误__", e);
}